import cv2 as cv
import matplotlib
import numpy as np

matplotlib.use('TkAgg')
from matplotlib import pyplot as plt


def main():
    img = cv.imread('../data/chessboard.png')
    rows, cols, ch = img.shape
    print(f"图像尺寸为: {img.shape}")

    offsetX = 100
    offsetY = 50

    pts1 = np.float32([[50, 50], [200, 50], [50, 200]])
    pts2 = np.float32([[10 + offsetX, 100 + offsetY], [200 + offsetX, 50 + offsetY], [100 + offsetX, 250 + offsetY]])

    M = cv.getAffineTransform(pts1, pts2)
    dst = cv.warpAffine(img, M, (cols, rows))

    plt.figure(figsize=(15, 15))
    plt.subplot(131), plt.imshow(cv.cvtColor(img, cv.COLOR_BGR2RGB)), plt.title('Input')
    plt.subplot(132), plt.imshow(cv.cvtColor(dst, cv.COLOR_BGR2RGB)), plt.title('Output')

    M = cv.getAffineTransform(pts2, pts1)
    dst2 = cv.warpAffine(dst, M, (cols, rows))
    plt.subplot(133), plt.imshow(cv.cvtColor(dst2, cv.COLOR_BGR2RGB)), plt.title('Input_FromOutput')
    plt.show()


if __name__ == "__main__":
    main()
